package edu.wit.system.service;

import com.baomidou.mybatisplus.extension.service.IService;
import edu.wit.common.web.PageResult;
import edu.wit.system.domain.AffairsApplyWorkflow;
import edu.wit.system.domain.dto.AffairsApplyWorkflowDto;
import edu.wit.system.domain.vo.AffairsApplyWorkflowExamineVo;
import edu.wit.system.domain.vo.AffairsApplyWorkflowVo;
import edu.wit.system.domain.vo.PersonApplyStatusVo;

import javax.validation.Valid;
import java.util.List;
import java.util.Map;

/**
 *
 *
 * @author yyh
 * @email 664287382@qq.com
 * @date 2021-05-26 11:45:36
 */
public interface AffairsApplyWorkflowService extends IService<AffairsApplyWorkflow> {

	/**
	 * 我的申请列表
	 */
	PageResult<AffairsApplyWorkflowDto> getApplyList(Map<String, Object> params);

	/**
	 * 我的审核列表
	 */
	PageResult<AffairsApplyWorkflowDto> getExamineList(Map<String, Object> params);

	/**
	 * 查询详细
	 */
	AffairsApplyWorkflowDto getById(Long id);

	/**
	 * 保存
	 */
	void apply(AffairsApplyWorkflowVo affairsApplyWorkflowVo);

	/**
	 * 撤销
	 */
	void cancel(Long applyId);

	/**
	 * 审核(需要传examineId的是小程序接口)
	 */
	void examine(@Valid AffairsApplyWorkflowExamineVo affairsApplyWorkflowExamineVo,String examineId);

	void examine(@Valid AffairsApplyWorkflowExamineVo affairsApplyWorkflowExamineVo);

	void multipleExamine(@Valid List<AffairsApplyWorkflowExamineVo> affairsApplyWorkflowExamineVos);

	void multipleExamine(@Valid List<AffairsApplyWorkflowExamineVo> affairsApplyWorkflowExamineVos,String examineId);

	public void workerExamine(@Valid AffairsApplyWorkflowExamineVo affairsApplyWorkflowExamineVo, String userId);

    List<PersonApplyStatusVo> selectObjectionListByPersonId(String personId,String applyStatus);
}

